API可用类型
所有的bot api返回的对象都是json格式的
#
User表示fanbook的用户或者机器人.
Field | Type | Description |
---|---|---|
id | Integer | 用户或者是机器人的唯一标识id |
is_bot | Boolean | true表示是机器人 |
first_name | String | 姓 |
last_name | String | Optional. 名字 |
username | String | Optional. username字段(有些文档也称为fanbook id) |
language_code | String | Optional. 用户语言的IETF语言标签 |
can_join_groups | Boolean | Optional. True, 机器人是否可以被邀请进服务器. 该参数仅通过 getMe获取. |
can_read_all_group_messages | Boolean | Optional. 如果privacy_mode设置为true,则表示可以接收服务器的所有消息. 该参数仅通过 getMe获取. |
supports_inline_queries | Boolean | Optional. 机器人是否支持内联查询(关于内联查询见API方法文档描述), 该参数仅通过 getMe获取。 |
pending | Boolean | 可选. 如果服务器开启了游客模式,新进来的用户未完成服务器新人的入门仪式时,pending为true,表示是游客. |
#
Chat表示一个Chat对象.
Field | Type | Description |
---|---|---|
id | Integer | chat的id. 64位的整形 |
type | String | chat的类型,目前定义有“private”,“channel” ,“group”,“supergroup” |
title | String | Optional. chat的标题 |
username | String | Optional. fanbook的id |
first_name | String | Optional. 目前填充的用户的nickname |
last_name | String | Optional. 没有使用 |
photo | [ChatPhoto]({{< ref "/docs/API可用类型#chatphoto" >}}) | Optional. chat的背景图. fanbook目前尚未定义,预留 [getChat]({{< ref "/docs/API可用方法#getchat" >}}). |
description | String | Optional. 描述,目前尚未定义,预留 [getChat]({{< ref "/docs/API可用方法#getchat" >}}). |
invite_link | String | Optional. 邀请链接. 目前尚未实现exportChatInviteLink方法 [exportChatInviteLink]({{< ref "/docs/API可用类型#exportchatinvitelink" >}}). getChat方法尚未实现 [getChat]({{< ref "/docs/API可用方法#getchat" >}}). |
pinned_message | [Message]({{< ref "/docs/API可用类型#message" >}}) | Optional. pin的消息列表,尚未定义,预留 [getChat]({{< ref "/docs/API可用方法#getchat" >}}). |
#
Message消息对象.
Field | Type | Description |
---|---|---|
message_id | Integer | 消息的唯一ID,由fanbook服务生成 |
from | User | Optional. 消息发送者 |
date | Integer | 消息发送的时间,unix时间戳 |
chat | Chat | message所属的chat对象 |
forward_from | User | Optional. 转发消息时,原始消息的发送者,预留,尚未使用 |
forward_from_chat | Chat | Optional. 转发消息时,原始消息的chat id,预留,尚未使用 |
forward_from_message_id | Integer | Optional. 转发消息时,原始消息的message_id,预留,尚未使用 |
forward_signature | String | Optional. 转发消息时,转发者的签名,预留,尚未使用 |
forward_sender_name | String | Optional. 转发者的用户名 |
forward_date | Integer | Optional. 转发消息时,表示原始消息的发送时间,unix时间戳 |
reply_to_message | Message | Optional. 回复某消息时,原始消息对象 |
via_bot | User | Optional. bot发送的消息 |
edit_date | Integer | Optional. 最后一次消息的编辑时间,unix时间戳 |
media_group_id | String | Optional. 流媒体channel或者group的id,预留,尚未定义 |
author_signature | String | Optional. 消息发送者的签名,预留,尚未定义 |
text | String | Optional. 消息的文本内容,最大102400个字节 |
entities | Array of MessageEntity | Optional. 消息的entities对象,对于文本消息,entities包含fanbook id,urls和机器人命令等 |
animation | Animation | Optional. 动画对象 |
audio | Audio | Optional. 音频文件对象 |
document | Document | Optional. 文件对象 |
photo | Array of PhotoSize | Optional. 图片对象 |
sticker | Sticker | Optional. 预留,尚未定义 |
video | Video | Optional. 视频对象 |
video_note | VideoNote | Optional. videonote对象 |
voice | Voice | Optional. voice对象 |
caption | String | Optional. 标题 |
caption_entities | Array of MessageEntity | Optional. 对于带有标题的消息,需要特殊的实体,如用户名、网址、机器人命令等。出现在标题中 ,预留,尚未定义 |
contact | Contact | Optional. 联系人对象 |
dice | Dice | Optional. 骰子,1~6的随机值 |
game | Game | Optional. game对象 game » |
poll | Poll | Optional. 投票类的消息 |
venue | Venue | Optional. 场所对象 |
location | Location | Optional. 位置对象 |
new_chat_members | Array of User | Optional. 如果是新人加入了服务器或者群的话,表示加入者这个user对象,可以包含多个 |
left_chat_member | User | Optional. 如果是离开服务器或者群,表示离开人的user对象,可以包含多个 |
new_chat_title | String | Optional. 新的聊天标题,预留,尚未定义 |
new_chat_photo | Array of PhotoSize | Optional. 新的聊天背景图片,预留,尚未定义 |
delete_chat_photo | True | Optional. 聊天背景图被删除了,预留,尚未定义 |
group_chat_created | True | Optional. 群聊天刚创建,预留,尚未定义 |
supergroup_chat_created | True | Optional. 服务消息:超级组已创建。此字段不能在通过更新发送的消息中接收,因为bot在创建时不能成为超级组的成员。只有当有人回复直接创建的超级组中的第一条消息时,才能在reply_to_message中找到它。预留,尚未定义 |
channel_chat_created | True | Optional. 频道已创建。此字段不能在通过更新发送的消息中接收,因为bot在创建时不能成为频道的成员。只有当有人回复频道中的第一条消息时,才能在reply_to_message中找到它。预留,尚未使用 |
migrate_to_chat_id | Integer | Optional. 该组已迁移到具有指定标识符的超级组。64位整形。预留,尚未定义 |
migrate_from_chat_id | Integer | Optional. 该超级组已从具有指定标识符的组中迁移。64位整形。预留,尚未定义 |
pinned_message | Message | Optional. 已经被pin的消息对象 |
invoice | Invoice | Optional. 对于交易类的业务,表示交易凭证(发票)对象,预留,尚未定义 |
successful_payment | SuccessfulPayment | Optional. 交易对象,预留,尚未定义 |
reply_markup | InlineKeyboardMarkup | Optional. 内联键盘. login_url按钮被表示为普通的url按钮 |
#
MessageEntity(预留,尚未使用)该对象表示文本消息中的一个特殊实体。例如,标签、用户名、网址等。
Field | Type | Description |
---|---|---|
type | String | 消息实体的类型. 可以是“艾特”(@username)、“hashtag”(# hashtag)、“cash tag”($ USD)、“bot command”(/start @ jobs bot)、“URL”(https://telegram . org)、“email”(do-not-reply @ telegram . org)、“phone _ number”(+1-212-555-0123)、“bold”(粗体文本)、“italic”(斜体文本)、“下划线”(下划线文本)、“删除线”(删除线文本)、“code”(mono width string)、“pre”(mono width block)、“text_link” |
offset | Integer | 以UTF-16代码单位表示的到实体开始的偏移量 |
length | Integer | 以UTF-16代码单位表示的实体长度 |
url | String | Optional. 仅适用于“文本链接”,用户点击文本后将打开的url |
user | User | Optional. 仅对于“文本艾特”,提及的用户对象 |
language | String | Optional. 仅用于“pre”,实体文本的编程语言 |
#
GuildCredit这个对象表示服务台授予给用户的荣誉
Field | Type | Description |
---|---|---|
authority | CreditAuthority | 荣誉颁发者 |
title | CreditTitle | 可选,荣誉 title,展示在聊天会话中的个人头像右侧 |
slots | Array of CreditSlot array | 荣誉槽,展示在个人信息页,是二维数组 |
#
CreditAuthority这个对象表示服务台荣誉颁发者的形象简介信息
Field | Type | Description |
---|---|---|
icon | String | 荣誉颁发者形象 logo url 地址 |
name | String | 荣誉颁发者名称 |
#
CreditTitle这个对象表示服务台授予给用户的主要荣誉称号,展示在服务台用户列表中
Field | Type | Description |
---|---|---|
img | String | 荣誉 Title 图形 url 地址 |
#
CreditSlot这个对象表示服务台授予给用户的基本荣誉称号,可以有多个,展示在服务台用户个人信息页面
Field | Type | Description |
---|---|---|
label | String | 荣誉文本标题,与 img 二选一 |
img | String | 荣誉图形标题,与 label 二选一 |
value | String | 荣誉值本值 |
#
GameCredit这个对象表示服务台授予给用户游戏战绩
Field | Type | Description | 必填 |
---|---|---|---|
type | Integer | 4=游戏勋章;5=自定义卡片 | 是 |
game_name | String | 游戏名称(type=5的时候必填) | 否 |
game_icon | String | 游戏icon(type=5的时候必填) | 否 |
image | String | 背景图 (type=4使用) | 否 |
tap_info | String | 跳转文案 | 否 |
tap_url | String | 跳转链接 | 否 |
widget_data | String | 自定义卡片数据(type=5的时候必填) | 否 |
main_info | MainInfo | 卡片头部(type=4的时候必填) | 否 |
text_info | Array[TextInfo] | 卡片数据(type=4的时候必填) | 否 |
#
MainInfo战绩卡片type=4的时候卡片头部数据区
Field | Type | Description |
---|---|---|
title | String | head头 |
sub_title | String | head头傍边的提示 |
text | String | 文案值 |
#
TextInfo战绩卡片type=4的时候卡片头部数据区
Field | Type | Description |
---|---|---|
name | String | 内容名 |
value | String | 内容值 |
#
Audio音频文件对象,可以被fanbook的客户端当做音乐文件。
Field | Type | Description |
---|---|---|
file_id | String | 文件标识,可以用于下载或者重用该文件 |
file_unique_id | String | 该文件的唯一标识符,随着时间的推移和不同的机器人,它应该是相同的。不能用于下载或重用文件。 |
duration | Integer | 音频文件播放持续时长,秒为单位 |
performer | String | Optional. 音频的制作人 |
title | String | Optional. 标题 |
mime_type | String | Optional. MIME类型 |
file_size | Integer | Optional. 文件大小 |
thumb | PhotoSize | Optional. 缩略图,或者说音频文件的封面 |
#
Document这个对象代表一个普通文件(相对于照片、语音消息和声音文件)。
Field | Type | Description |
---|---|---|
file_id | String | 文件标识,可以用于下载该文件,一般是指url |
file_unique_id | String | 该文件的唯一标识符,随着时间的推移和不同的机器人,它应该是相同的。不能用于下载或重用文件。 |
thumb | PhotoSize | Optional. 文档的缩略图 |
file_name | String | Optional. 文件名称 |
mime_type | String | Optional. 文件的MIME 类型 |
file_size | Integer | Optional. 文件大小 |
#
Video视频文件对象.
Field | Type | Description |
---|---|---|
file_id | String | 文件标识,可以用于下载该文件,一般是指url |
file_unique_id | String | 该文件的唯一标识符,随着时间的推移和不同的机器人,它应该是相同的。不能用于下载或重用文件。 |
width | Integer | 视频的宽度 |
height | Integer | 视频的高度 |
duration | Integer | 视频播放的持续时间,秒为单位 |
thumb | PhotoSize | Optional. 视频的封面缩略图 |
mime_type | String | Optional. 文件的MIME类型 |
file_size | Integer | Optional. 文件大小 |
#
VideoNote此对象表示一条视频消息
Field | Type | Description |
---|---|---|
file_id | String | 文件标识,可以用于下载该文件,一般是指url |
file_unique_id | String | 该文件的唯一标识符,随着时间的推移和不同的机器人,它应该是相同的。不能用于下载或重用文件。 |
length | Integer | 发送方定义的视频宽度和高度(视频消息的直径) |
duration | Integer | 视频播放的持续时间,秒为单位 |
thumb | PhotoSize | Optional. 缩略图 |
file_size | Integer | Optional. 文件大小 |
#
Voice语音消息。
Field | Type | Description |
---|---|---|
file_id | String | 文件标识,可以用于下载该文件,一般是指url |
file_unique_id | String | 该文件的唯一标识符,随着时间的推移和不同的机器人,它应该是相同的。不能用于下载或重用文件。 |
duration | Integer | 语音播放的持续时间,秒为单位 |
mime_type | String | Optional. 文件的MIME类型 |
file_size | Integer | Optional. 文件大小 |
#
Contact(预留,尚未使用)此对象表示一个电话联系人。
Field | Type | Description |
---|---|---|
phone_number | String | 联系人的电话 |
first_name | String | 联系人的姓 |
last_name | String | Optional. 联系人的名字 |
user_id | Integer | Optional. 用户id |
vcard | String | Optional. 以电子名片形式提供的有关联系人的附加数据 |
#
Dice(预留,尚未定义)该对象表示显示随机值的动画表情符号.
Field | Type | Description |
---|---|---|
emoji | String | 骰子投掷动画所基于的表情符号 |
value | Integer | 骰子的数值,1-6代表以"????"和"????"为底的表情符号,1-5代表"????"为底的表情符号 |
#
PollOption此对象包含有关投票中一个答案选项的信息。
Field | Type | Description |
---|---|---|
text | String | 选项文本,1-100个字符 |
voter_count | Integer | 投票支持此选项的用户数量 |
#
PollAnswer此对象表示用户在非匿名投票中的答案。
Field | Type | Description |
---|---|---|
poll_id | String | 唯一轮询标识符 |
user | User | 提交投票答案的用户 |
option_ids | Array of Integer | 用户选择的基于0的答案选项标识符。如果用户撤回投票,则可能为空。 |
#
Poll投票对象
Field | Type | Description |
---|---|---|
id | String | 投票的唯一id |
question | String | 投票问题,1-255个字符 |
options | Array of PollOption | 选项列表 |
total_voter_count | Integer | 投票的用户总数 |
is_closed | Boolean | 投票是否结束 |
is_anonymous | Boolean | 是否匿名 |
type | String | 投票类型,目前可以是“regular(常规)”或“quiz(测验)” |
allows_multiple_answers | Boolean | True, if the poll allows multiple answers |
correct_option_id | Integer | Optional. 正确答案选项的基于0的标识符。仅适用于测验模式下的投票,该模式已关闭,或由机器人发送(未转发)或用于与机器人的私人聊天。 |
explanation | String | Optional. 当用户选择不正确的答案或在测验式投票中点击灯图标时显示的文本,0-200个字符 |
explanation_entities | Array of MessageEntity | Optional. 用户名、网址、机器人命令等特殊实体。出现在解释中 |
open_period | Integer | Optional. 创建后轮询处于活动状态的时间(秒) |
close_date | Integer | Optional. 轮询将自动关闭的时间点(Unix时间戳) |
#
Location(预留,尚未使用)地图位置对象
Field | Type | Description |
---|---|---|
longitude | Float | 发送者定义的纬度 |
latitude | Float | 发送者定义的经度 |
#
Venue地里场地对象
Field | Type | Description |
---|---|---|
location | Location | 位置 |
title | String | 名字 |
address | String | 地址 |
foursquare_id | String | Optional. 地理的四方标识符 |
foursquare_type | String | Optional. 四方形的场地。(例如,“artsentertainment/default”、“arts entertainment/水族箱”或“食物/冰淇淋”)。) |
#
UserProfilePhotos这个对象代表用户的个人资料图片。
Field | Type | Description |
---|---|---|
total_count | Integer | 目标用户拥有的个人资料图片总数 |
photos | Array of Array of PhotoSize | 请求的个人资料图片(每个最多4种尺寸) |
#
File该对象表示准备下载的文件,缓存在服务器上的文件具有缓存时长,在缓存期间可以下载,超过后缓存失效。
Maximum file size to download is 20 MB
Field | Type | Description |
---|---|---|
file_id | String | 该文件的标识符,可用于下载或重用该文件 |
file_unique_id | String | 该文件的唯一标识符,随着时间的推移和不同的机器人,它应该是相同的。不能用于下载或重用文件 |
file_size | Integer | Optional. 文件大小 |
file_path | String | Optional. 文件路径. |
#
ReplyKeyboardMarkup此对象代表一个有回复选项自定义键盘。
Field | Type | Description |
---|---|---|
keyboard | Array of Array of KeyboardButton | KeyboardButton 对象数组 |
resize_keyboard | Boolean | Optional. 请求客户端垂直调整键盘大小以获得最佳适合度(例如,如果只有两行按钮,则使键盘变小)。默认为false,在这种情况下,自定义键盘的高度始终与应用程序的标准键盘相同。 |
one_time_keyboard | Boolean | Optional. 一旦键盘被使用,就请求客户端隐藏它。键盘仍将可用,但客户将在聊天中自动显示通常的字母键盘,用户可以按下输入栏中的特殊按钮再次查看自定义键盘。默认为false。 |
selective | Boolean | Optional. 如果您只想向特定用户显示键盘,请使用此参数。目标:1)消息对象文本中@提到的用户;2)如果机器人的消息是回复(具有reply_to_message_id),则为原始消息的发送者。示例:用户请求更改机器人的语言,机器人用键盘回复请求以选择新语言。组中的其他用户看不到键盘。 |
#
KeyboardButton此对象表示回复键盘的一个按钮。对于简单的文本按钮,可以使用字符串代替该对象来指定按钮的文本。可选字段request_contact、request_location和request_poll是互斥的.
Field | Type | Description |
---|---|---|
text | String | 按钮的文本. 如果没有使用任何可选字段,当按下按钮时,它将作为消息发送 |
request_contact | Boolean | Optional. 如果为TRUE,当按下按钮时,用户的电话号码将作为联系人发送。仅在私人聊天中可用 |
request_location | Boolean | Optional. 如果为TRUE, 则按下按钮时将发送用户的当前位置。仅在私人聊天中可用 |
request_poll | KeyboardButtonPollType | Optional. 如果设置,用户将被要求创建一个投票,并在按钮被按下时将其发送给机器人。仅在私人聊天中可用 |
#
KeyboardButtonPollType此对象表示投票类型的按钮,当按下相应的按钮时,允许创建和发送投票.
Field | Type | Description |
---|---|---|
type | String | Optional. If quiz is passed, the user will be allowed to create only polls in the quiz mode. If regular is passed, only regular polls will be allowed. Otherwise, the user will be allowed to create a poll of any type. 如果为“quiz”,用户将只能在测验模式下创建测验。如果为“regular”,将只允许常规投票。否则,用户将被允许创建任何类型的投票 |
#
ReplyKeyboardRemove收到带有此对象的消息后,客户端将删除当前的自定义键盘,并显示默认字母键盘。默认情况下,自定义键盘会一直显示,直到机器人发送新键盘。用户按下按钮后立即隐藏的一次性键盘除外.
Field | Type | Description |
---|---|---|
remove_keyboard | True | 请求客户端移除自定义键盘(用户将无法调用此键盘;如果您想隐藏键盘,但保持其可访问性,请在ReplyKeyboardMarkup中使用一次性键盘) |
selective | Boolean | Optional. 如果您只想为特定用户移除键盘,请使用此参数。目标:1)消息对象文本中@提到的用户;2)如果机器人的消息是回复(具有reply_to_message_id),则为原始消息的发送者。示例:用户在投票中投票,bot返回确认消息以回复投票,并为该用户移除键盘,同时仍向尚未投票的用户显示带有投票选项的键盘。 |
#
InlineKeyboardMarkup此对象表示一个内联键盘,它就出现在它所属的消息旁边。
Field | Type | Description |
---|---|---|
inline_keyboard | Array of Array of InlineKeyboardButton | 多行按钮, 每个都是 InlineKeyboardButton 对象 |
#
InlineKeyboardButton此对象表示内联键盘的一个按钮。您必须使用可选字段中的一个.
Field | Type | Description |
---|---|---|
text | String | 按钮上的文本 |
url | String | Optional. 按下按钮时,会打开url的链接地址 |
app_id | String | Optional. 按下按钮时,会打开app_id的链接小程序 |
login_url | LoginUrl | Optional. 用于自动授权用户的HTTP网址。预留,尚未使用 |
callback_data | String | Optional. 按下按钮后,会向机器人发送 callback query 的数据 |
switch_inline_query | String | Optional. 如果设置,按下按钮将提示用户选择他们的聊天之一,打开该聊天,并在输入字段中插入机器人的用户名和指定的内联查询。可以为空,在这种情况下,将只插入机器人的用户名。注意:这为用户提供了一种简单的方法,当他们当前正在与你的机器人进行私人聊天时,可以在内嵌模式下开始使用它。当与switch_pm…动作结合时特别有用——在这种情况下,用户将自动返回到他们切换的聊天,跳过聊天选择屏幕。 |
switch_inline_query_current_chat | String | Optional. 如果设置,按下按钮将在当前聊天的输入字段中插入机器人的用户名和指定的内联查询。可以为空,在这种情况下,将只插入机器人的用户名。这为用户在同一个聊天中以内嵌模式打开你的机器人提供了一个快速的方法——非常适合从多个选项中选择。 |
callback_game | CallbackGame | Optional. 用户按下按钮时将启动游戏。注意:这种类型的按钮必须始终是第一行的第一个按钮。 |
pay | Boolean | Optional. 指定“TRUE”,发送支付按钮。注意:这种类型的按钮必须始终是第一行的第一个按钮。 |
比如发送一个带有"确定"和"取消"按钮的内联键盘:
"reply_markup": {"inline_keyboard": [[{"text": "确定","callback_data": "confirm#>{\"command\":\"confirm\",\"data\":{\"credit_apply\":{\"guild_id\":259248080753266688,\"user_id\":135398049852686336,\"status\":true,\"apply_data\":{\"server_id\":\"302\",\"pid\":\"3568780\"},\"updated_at\":1628066996,\"created_at\":1628066996,\"message_id\":263587296580730880},\"unbind\":{\"guild_id\":259248080753266688,\"user_id\":135398049852686336,\"unbind_times\":1,\"latest_unbind_time\":1627141034},\"username\":\"655690\",\"nickname\":\"Allen.Lee\"}}"}],[{"text": "取消","callback_data": "cancle#>{\"command\":\"cancle\",\"data\":{\"credit_apply\":{\"guild_id\":259248080753266688,\"user_id\":135398049852686336,\"status\":true,\"apply_data\":{\"server_id\":\"302\",\"pid\":\"3568780\"},\"updated_at\":1628066996,\"created_at\":1628066996,\"message_id\":263587296580730880},\"unbind\":{\"guild_id\":259248080753266688,\"user_id\":135398049852686336,\"unbind_times\":1,\"latest_unbind_time\":1627141034},\"username\":\"655690\",\"nickname\":\"Allen.Lee\"}}"}]]}
text会展示为按钮的文本,callback_data是当用户点击按钮后,APP会发送一条消息给机器人,这条消息的内容是callback_data里的内容;因为callback_data是字符串的,所以我们也可以设计好这个文本格式,比如示例就是 confirm#>{"command":"xxx", "data":"xxx"},这样机器人收到消息后,通过这段文本,了解到用户是点击"确定"按钮的,携带的数据也在里面,对数据再做何种处理,那也是很自由的。
#
CallbackQuery点击callback按钮后,会发送一个CallbackQuery对象给机器人,如果callback button是附加在机器人发送的某消息中发送的,则CallbackQuery需指定Message对象,如果是附加在inline query的消息中,则需设置inline_message_id字段。
Field | Type | Description |
---|---|---|
id | String | 此查询的唯一标识符 |
from | User | 发送者 |
message | Message | Optional. 带有发起查询的回调按钮的消息。请注意,如果消息太旧,消息内容和消息日期将不可用 |
inline_message_id | String | Optional. 以内嵌模式通过bot发送的消息的标识符,该消息发起了查询。 |
chat_instance | String | 全局标识符,唯一对应于带有回叫按钮的消息发送到的聊天。对游戏高分有用。 |
data | String | Optional. 与回调按钮关联的数据。请注意,坏客户端可以在此字段中发送任意数据。 |
game_short_name | String | Optional. 要返回的游戏的简称,用作游戏的唯一标识符 |
#
GuildRole这个对象包含服务台角色的信息.
Field | Type | Description |
---|---|---|
id | Integer | 角色 ID |
name | String | 角色名称 |
position | Integer | 角色优先级 |
permissions | Integer | 角色权限 |
color | Integer | 角色标签色值 |
managed | bool | (可选) 是否有管理者(true表示有管理者不能删除不能添加用户到角色下面) |
member_count | Integer | (可选) // 角色下有多少人 |
tag | Object | (可选) 管理者机器人 |
权限的定义:
PERMISSION | VALUE | DESCRIPTION | CHANNEL TYPE |
---|---|---|---|
CREATE_INSTANT_INVITE | 0x0000000001 (1 << 0) | 创建邀请链接 | T, V, S |
KICK_MEMBERS * | 0x0000000002 (1 << 1) | 踢人的权限 | |
BAN_MEMBERS * | 0x0000000004 (1 << 2) | 预留 | |
ADMINISTRATOR * | 0x0000000008 (1 << 3) | 拥有所有权限 | |
MANAGE_CHANNELS * | 0x0000000010 (1 << 4) | 管理和编辑频道的权限 | T, V, S |
MANAGE_GUILD * | 0x0000000020 (1 << 5) | 管理和编辑服务器的权限 | |
ADD_REACTIONS | 0x0000000040 (1 << 6) | 对消息表态的权限 | T |
VIEW_AUDIT_LOG | 0x0000000080 (1 << 7) | 预留 | |
PRIORITY_SPEAKER | 0x0000000100 (1 << 8) | 预留 | V |
STREAM | 0x0000000200 (1 << 9) | 预留 | V |
VIEW_CHANNEL | 0x0000000400 (1 << 10) | 查看频道的权限 | T, V, S |
SEND_MESSAGES | 0x0000000800 (1 << 11) | 发送消息的权限 | T |
SEND_TTS_MESSAGES | 0x0000001000 (1 << 12) | 预留 | T |
MANAGE_MESSAGES * | 0x0000002000 (1 << 13) | 管理消息的权限,即可以删除其他用户发送的消息 | T |
EMBED_LINKS | 0x0000004000 (1 << 14) | 预留 | T |
ATTACH_FILES | 0x0000008000 (1 << 15) | 预留 | T |
READ_MESSAGE_HISTORY | 0x0000010000 (1 << 16) | 读取历史消息的权限 | T |
MENTION_EVERYONE | 0x0000020000 (1 << 17) | 允许艾特所有人的权限 | T |
USE_EXTERNAL_EMOJIS | 0x0000040000 (1 << 18) | 预留 | T |
VIEW_GUILD_INSIGHTS | 0x0000080000 (1 << 19) | 预留 | |
CONNECT | 0x0000100000 (1 << 20) | 允许进入语音频道的权限 | V, S |
SPEAK | 0x0000200000 (1 << 21) | 允许在语音频道说话的权限 | V |
MUTE_MEMBERS | 0x0000400000 (1 << 22) | 在语音频道禁止别人说话的权限 | V, S |
DEAFEN_MEMBERS | 0x0000800000 (1 << 23) | 预留 | V, S |
MOVE_MEMBERS | 0x0001000000 (1 << 24) | 在语音频道踢人的权限 | V, S |
USE_VAD | 0x0002000000 (1 << 25) | 预留 | V |
CHANGE_NICKNAME | 0x0004000000 (1 << 26) | 预留 | |
MANAGE_NICKNAMES | 0x0008000000 (1 << 27) | 预留 | |
MANAGE_ROLES * | 0x0010000000 (1 << 28) | 管理角色的权限 | T, V, S |
MANAGE_WEBHOOKS * | 0x0020000000 (1 << 29) | 预留 | T |
MANAGE_EMOJIS_AND_STICKERS * | 0x0040000000 (1 << 30) | 管理表情符号的权限 | |
MANAGE_CIRCLE | 0x0080000000 (1 << 31) | 管理圈子的权限 | T |
REQUEST_TO_SPEAK | 0x0100000000 (1 << 32) | 预留 | S |
MANAGE_THREADS * | 0x0400000000 (1 << 34) | 预留 | T |
USE_PUBLIC_THREADS | 0x0800000000 (1 << 35) | 预留 | T |
USE_PRIVATE_THREADS | 0x1000000000 (1 << 36) | 预留 | T |
USE_EXTERNAL_STICKERS | 0x2000000000 (1 << 37) | 预留 | T |
#
ChatMember描述了ChatMember对象
Field | Type | Description |
---|---|---|
user | User | User对象 |
status | String | 在对话中的状态,包含 “creator”, “administrator”, “member”, “restricted”, “left” or “kicked” |
roles | Array of GuildRole | Optional. 成员在当前服务器拥有的角色 ID 列表 |
custom_title | String | Optional. 预留 |
until_date | Integer | Optional. 预留 |
can_manage_guild | Boolean | Optional. 是否可以管理服务器 |
can_manage_channels | Boolean | Optional. 是否可以管理频道 |
can_manage_roles | Boolean | Optional. 是否可以管理角色 |
can_manage_emojis | Boolean | Optional. 是否可以管理表情 |
can_be_edited | Boolean | Optional. 如果机器人被允许编辑该用户的管理员权限,则为True |
can_post_messages | Boolean | Optional. 是否可在频道中发言 |
can_edit_messages | Boolean | Optional. 是否可以其它用户发送的消息和pin消息 |
can_delete_messages | Boolean | Optional. 预留,尚未定义 |
can_restrict_members | Boolean | Optional. 预留,尚未定义 |
can_promote_members | Boolean | Optional. 预留,尚未定义 |
can_change_info | Boolean | Optional. 预留,尚未定义 |
can_invite_users | Boolean | Optional. 预留,尚未定义 |
can_pin_messages | Boolean | Optional. 预留,尚未定义 |
is_member | Boolean | Optional. 预留,尚未定义 |
can_send_messages | Boolean | Optional. 预留,尚未定义 |
can_send_media_messages | Boolean | Optional. 预留,尚未定义 |
can_send_polls | Boolean | Optional. 预留,尚未定义 |
can_send_other_messages | Boolean | Optional. 预留,尚未定义 |
can_add_web_page_previews | Boolean | Optional. 预留,尚未定义 |
#
BotCommand机器人的命令对象
Field | Type | Description |
---|---|---|
command | String | 命令文本,1-32个字符。只能包含小写英文字母、数字和下划线。 |
description | String | 描述,3-256个字符 |
visible_level | Integer | 可见级别,0值表示公开可见,即所有人都能看见该命令,1值表示私聊可见,即跟机器人私聊时才能看见该命令,2值表示服务器的管理人员才能看到该命令 |
form_parameters | String | BotCommandParameter类型的数组,表示该名字对应的表单参数 |
hide | String | 消息是否隐藏,比如机器人有个“签到”命令,用户签到时,会发送“@签到机器人 签到”,如果设置了hide为true,则只有发送者可见看到这个消息,而其他的人是看不到该消息的。 |
clickable | String | 是否可点击,即比如发送了一个cancel命令后,是不是还可以点击聊天页面中的cancal文本继续给机器人发送cancal命令 |
app_id | String | 点击该命令后,弹出一个小程序,app_id为程序链接地址 |
url | String | 点击该命令后,弹出url链接页面,url为页面链接地址 |
#
BotCommandParameter机器人命令的参数表
Field | Type | Description |
---|---|---|
icon | String | Optional 参数图标 |
k | String | Optional 参数的唯一标识key |
v | String | Optional 参数的值 |
#
BotBot对象的描述
Field | Type | Description |
---|---|---|
bot_id | i64 | bot的id |
owner_id | i64 | bot所有者的user_id |
bot_name | String | bot的昵称 |
bot_description | String | bot的描述信息 |
bot_about | String | 关于bot的一些详情 |
bot_avatar | String | bot的头像图片地址 |
commands | Array | BotCommand的数组 |
webhook | String | webhook地址,webhook是一个url地址,必须是公网可访问的,当fanbook服务的服务器产生消息后,会把Update对象通过该url以http或者https的方式发送给机器人,目前没有支持这种方式,目前是通过getUpdate的长轮询的方案发送消息给机器人 |
enable_inline_mode | bool | 机器人以inline模式工作 |
join_group_allowed | bool | 是否允许加入到频道 |
enable_group_privacy_mode | bool | 是否开启privacyMode,如果打开,则机器人可以接收所有频道的消息,否则只能接口私信,和频道里@机器人的消息 |
#
Channel描述服务器的频道或者DM的频道
Field | Type | Description |
---|---|---|
channel_id | String | 频道的ID |
type | Integer | 频道的类型,参照[channe type](#Channel Type)定义 |
guild_id | String | 服务器ID,如果是服务器的频道则有该字段,如果是DM频道或者群(group DM channel)则没有该字段 |
name | String | 频道名字 |
icon | String | 频道图标,如果是群(group DM channel)则表示群的头像 |
user_limit | Integer | 频道人数限制,对于群(group DM channel)才有人数限制 |
owner_id | String | 群频道的所有者id,初始创建的群频道创建者就是群频道的owner |
topic | String | 频道的主题 |
permission_overwrites | Array of PermissionOverwrite | 服务器频道的权限覆盖表,PermissionOverwrite对象的数组 |
#
Channel Type频道类型
Type | ID | Description |
---|---|---|
TextChannel | 0 | 普通文本频道 |
VoiceChannel | 1 | 语音频道 |
VideoChannel | 2 | 视频频道 |
DMChannel | 3 | 私聊频道 |
ClassChannel | 4 | 频道分类 |
CircleChannel | 5 | 圈子 |
LiveStreamChannel | 6 | 直播频道 |
LinkChannel | 7 | 链接频道 |
LiveRoomChannel | 8 | 直播房间 |
TaskInduction | 9 | 任务频道(预留) |
GroupDMChannel | 10 | 群 |
#
PermissionOverwrite频道权限覆盖对象
Field | Type | Description |
---|---|---|
id | String | 角色或者是用户的id |
action_type | String | 如果频道权限覆盖的是角色,则填“role”,如果权限覆盖的是用户,则填“user”;否则是无效定义 |
deny | Integer | 拒绝的权限值 |
allows | Integer | 允许的权限值 |
#
GuildEmojiField | Type | Description |
---|---|---|
avatar | String | 表情图片链接地址,最好是上传我我们的CDN服务器上 |
name | String | 服务器表情的名字 |
position | Integer | 服务器表情的位置 |
user | String | 上传表情的用户ID |
w | Integer | emoji宽度像素 |
h | Integer | emoji高度像素 |
#
GuildField | Type | Description |
---|---|---|
guild_id | String | 服务器id |
name | String | 服务器表情的名字 |
icon | String | 服务器的图标 |
banner | String | 服务器的背景图片 |
description | String | 服务器的介绍信息 |
owner_id | String | 服务器的owner的user_id |
channels | Array of Channel | 服务器所有的频道列表 |
permissions | Integer | 所有人的最基本权限值,每个bit位代表一项权限 |
#
CirclePost 对象Field | Type | Description |
---|---|---|
user | User | user对象,该圈子动态的作者 |
post | CirclePostContent | 动态的内容对象 |
sub_info | CirclePostSubInfo | 动态的其它详情 |
doc_info | CirclePostDocInfo | 文档详情 |
coffee_info | CirclePostCoffeeInfo | 打赏咖啡详情 |
#
CirclePostContent 对象Field | Type | Description |
---|---|---|
post_id | String | 动态的ID |
guild_id | String | 圈子动态所在的服务器ID |
channel_id | String | 圈子动态所在的频道ID |
topic_name | String | 动态所属的主题(分类)名字 |
title | String | 动态的标题 |
created_at | String | 动态发表的时间点 |
content | String | 动态的内容 |
topic_id | String | 动态的分类主题 |
#
CirclePostSubInfo 对象Field | Type | Description |
---|---|---|
comment_total | Integer | 动态的评论数量 |
like_total | Integer | 动态的点赞(表态)数量 |
can_del | Integer | 动态是否能够被删除 |
liked | i32 | 当前用户是否点赞过 |
like_id | String | 当前点赞用户的user_id |
is_top | bool | 动态是否置顶 |
is_follow | bool | 动态是否被关注 |
#
CirclePostReactionField | Type | Description |
---|---|---|
records | CirclePostReactionRecord[] | 表态的记录列表 |
size | Integer | 当前分页的大小 |
list_id | String | 当前分页最后一条表态的ID |
next | bool | 是否还有下一分页 |
#
CirclePostReactionRecordField | Type | Description |
---|---|---|
user_id | String | 表态记录的用户ID |
avatar | String | 表态记录的用户的头像 |
nickname | String | 表态记录的用户昵称 |
username | String | 表态记录的用户短号 |
reaction_id | String | 表态记录的ID |
#
CirclePostCommentField | Type | Description |
---|---|---|
records | CirclePostCommentRecord[] | 圈子动态的评论的记录列表 |
post | CirclePostDetail | 圈子动态的详情 |
item | CirclePostCommentRecord | 如果是回复评论,则会有该对象,表示被回复的评论内容本身 |
size | Integer | 当前分页的大小 |
list_id | String | 当前分页最后一条表态的ID |
next | bool | 是否还有下一分页 |
#
CirclePostCommentRecordField | Type | Description |
---|---|---|
user | User | 圈子动态的评论的作者 |
comment | CirclePostCommentContent | 圈子动态的回复内容本身 |
#
CirclePostCommentContentField | Type | Description |
---|---|---|
comment_id | String | 评论的ID |
quote_l1 | String | 如果是回复某条评论,则表示被回复的comment_id,如果是回复动态,则表示post_id |
content | String | 回复或者评论的内容,富文本格式的 |
created_at | Integer | 回复的时间点 |
like_total | Integer | 该回复点赞的数量 |
comment_total | Integer | 该评论的回复(评论)数量 |
replay_list | CirclePostCommentRecord | 该评论的回复记录列表 |
#
CirclePostDocInfoField | Type | Description |
---|---|---|
type | String | 文档类型 |
title | String | 文档标题 |
user_id | String | 文档作者 |
guild_id | String | 服务器ID |
created_at | string | 文档创建时间 |
role | Integer | 权限:1表示阅读权限,2表示编辑权限 |
#
CirclePostCoffeeInfoField | Type | Description |
---|---|---|
give_coffee_total | Integer | 打赏的咖啡总数 |
give_coffee_real_number | Integer | 实际打赏的总人数 |
is_give_coffee | Integer | 当前用户是否有打赏 1:有,0:无 |
give_coffee_detail | CoffeeDetail | 打赏详情 |
#
CoffeeDetailField | Type | Description |
---|---|---|
id | Integer | 打赏详情的记录ID |
user_id | String | 打赏用户的user_id |
cnt | Integer | |
created_at | Integer | 打赏时间 |
#
InviteCodeInfo邀请码详情对象
Field | Type | Description |
---|---|---|
id | Integer | 打赏详情的记录ID |
user_id | String | 打赏用户的user_id |
cnt | Integer | |
created_at | Integer | 打赏时间 |
#
GuildInviteCodeRecord服务器邀请码记录
Field | Type | Description |
---|---|---|
code | String | 邀请码,不包含域名 |
inviter_name | String | 邀请人名称 |
channel_on_del | String | 频道是否删除,1表示删除,0表示未删除 |
inviter_id | String | 邀请者用户的user_id |
avatar | String | 邀请者头像 |
channel_name | String | 频道名称 |
expire_time | String | 失效时间: 0表示已失效,大于0表示还剩多少秒,-1表示永久不失效 |
number_less | String | 剩下多少次邀请人数 |
has_invited | String | 共邀请多少人 |
list_id | String | 记录id |
remark | String | 备注 |
time | String | 管理/邀请人设定的有效期 :-1表示永久有效 |
number | String | 管理/邀请人设定次数:-1表示无限制,大于0表示限制的次数 |
channel_id | String | 邀请加入的频道ID |
channel_type | Integer | 频道类型,如果邀请加入服务器则为null |
post_id | String | 圈子Id: 圈子分享来源会有post_id |
url | String | 邀请码地址, 比如https://fanbook.mobi/ABCX |